<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: elftosb::IVTDataSource Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader Host
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Host Tools for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classelftosb_1_1_i_v_t_data_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classelftosb_1_1_i_v_t_data_source-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">elftosb::IVTDataSource Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Data source for an IVT structure used by HAB4.  
 <a href="classelftosb_1_1_i_v_t_data_source.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_v_t_data_source_8h_source.html">IVTDataSource.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for elftosb::IVTDataSource:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classelftosb_1_1_i_v_t_data_source__inherit__graph.svg" width="307" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for elftosb::IVTDataSource:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classelftosb_1_1_i_v_t_data_source__coll__graph.svg" width="400" height="218"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a864d4fcc2419dd4c7875964fbec0ecbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a864d4fcc2419dd4c7875964fbec0ecbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a864d4fcc2419dd4c7875964fbec0ecbb">IVTDataSource</a> ()</td></tr>
<tr class="memdesc:a864d4fcc2419dd4c7875964fbec0ecbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a864d4fcc2419dd4c7875964fbec0ecbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49da47350d8f28f21f9df4c885714499"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49da47350d8f28f21f9df4c885714499"></a>
virtual unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a49da47350d8f28f21f9df4c885714499">getSegmentCount</a> ()</td></tr>
<tr class="memdesc:a49da47350d8f28f21f9df4c885714499"><td class="mdescLeft">&#160;</td><td class="mdescRight">There is only one segment. <br /></td></tr>
<tr class="separator:a49da47350d8f28f21f9df4c885714499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab489130aa85f8bfb52ca076730bf2cec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab489130aa85f8bfb52ca076730bf2cec"></a>
virtual <a class="el" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#ab489130aa85f8bfb52ca076730bf2cec">getSegmentAt</a> (unsigned index)</td></tr>
<tr class="memdesc:ab489130aa85f8bfb52ca076730bf2cec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this object, as it is its own segment. <br /></td></tr>
<tr class="separator:ab489130aa85f8bfb52ca076730bf2cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Segment methods</div></td></tr>
<tr class="memitem:a191933f4dd35766dea310863abc78f6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a191933f4dd35766dea310863abc78f6b"></a>
virtual unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a191933f4dd35766dea310863abc78f6b">getData</a> (unsigned offset, unsigned maxBytes, uint8_t *buffer)</td></tr>
<tr class="memdesc:a191933f4dd35766dea310863abc78f6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy out some or all of the IVT structure. <br /></td></tr>
<tr class="separator:a191933f4dd35766dea310863abc78f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69a63f1ebe33f867fb372ebc8a804ea8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69a63f1ebe33f867fb372ebc8a804ea8"></a>
virtual unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a69a63f1ebe33f867fb372ebc8a804ea8">getLength</a> ()</td></tr>
<tr class="memdesc:a69a63f1ebe33f867fb372ebc8a804ea8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of the segment's data. <br /></td></tr>
<tr class="separator:a69a63f1ebe33f867fb372ebc8a804ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a659f63510e7b5e203845820fae996dfe"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a659f63510e7b5e203845820fae996dfe">hasNaturalLocation</a> ()</td></tr>
<tr class="memdesc:a659f63510e7b5e203845820fae996dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the segment has an associated address.  <a href="#a659f63510e7b5e203845820fae996dfe">More...</a><br /></td></tr>
<tr class="separator:a659f63510e7b5e203845820fae996dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa30eb0fc20e0f54b91813981bdb4348c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa30eb0fc20e0f54b91813981bdb4348c"></a>
virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#aa30eb0fc20e0f54b91813981bdb4348c">getBaseAddress</a> ()</td></tr>
<tr class="memdesc:aa30eb0fc20e0f54b91813981bdb4348c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address associated with the segment. <br /></td></tr>
<tr class="separator:aa30eb0fc20e0f54b91813981bdb4348c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">IVT access</div></td></tr>
<tr class="memitem:a078b4fbaafc3cea06cf478466857d957"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a078b4fbaafc3cea06cf478466857d957">setFieldByName</a> (const std::string &amp;name, uint32_t value)</td></tr>
<tr class="memdesc:a078b4fbaafc3cea06cf478466857d957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set one of the IVT's fields by providing its name.  <a href="#a078b4fbaafc3cea06cf478466857d957">More...</a><br /></td></tr>
<tr class="separator:a078b4fbaafc3cea06cf478466857d957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b8edef123cc272bbddb10b3e8fd5f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48b8edef123cc272bbddb10b3e8fd5f5"></a>
hab_ivt_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a48b8edef123cc272bbddb10b3e8fd5f5">getIVT</a> ()</td></tr>
<tr class="memdesc:a48b8edef123cc272bbddb10b3e8fd5f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the IVT structure. <br /></td></tr>
<tr class="separator:a48b8edef123cc272bbddb10b3e8fd5f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classelftosb_1_1_data_source"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classelftosb_1_1_data_source')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classelftosb_1_1_data_source.html">elftosb::DataSource</a></td></tr>
<tr class="memitem:ad476743c1db7ddc5f54ef731ad8887b7 inherit pub_methods_classelftosb_1_1_data_source"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad476743c1db7ddc5f54ef731ad8887b7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source.html#ad476743c1db7ddc5f54ef731ad8887b7">DataSource</a> ()</td></tr>
<tr class="memdesc:ad476743c1db7ddc5f54ef731ad8887b7 inherit pub_methods_classelftosb_1_1_data_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:ad476743c1db7ddc5f54ef731ad8887b7 inherit pub_methods_classelftosb_1_1_data_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab021fdbf752328b7d76f11c92dee2a26 inherit pub_methods_classelftosb_1_1_data_source"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab021fdbf752328b7d76f11c92dee2a26"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source.html#ab021fdbf752328b7d76f11c92dee2a26">~DataSource</a> ()</td></tr>
<tr class="memdesc:ab021fdbf752328b7d76f11c92dee2a26 inherit pub_methods_classelftosb_1_1_data_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ab021fdbf752328b7d76f11c92dee2a26 inherit pub_methods_classelftosb_1_1_data_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4de7033cf482381e2938945247f3775b inherit pub_methods_classelftosb_1_1_data_source"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4de7033cf482381e2938945247f3775b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source.html#a4de7033cf482381e2938945247f3775b">setTarget</a> (<a class="el" href="classelftosb_1_1_data_target.html">DataTarget</a> *target)</td></tr>
<tr class="memdesc:a4de7033cf482381e2938945247f3775b inherit pub_methods_classelftosb_1_1_data_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the associated data target. <br /></td></tr>
<tr class="separator:a4de7033cf482381e2938945247f3775b inherit pub_methods_classelftosb_1_1_data_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46345e60c1233c1eceb3033da4e2a471 inherit pub_methods_classelftosb_1_1_data_source"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46345e60c1233c1eceb3033da4e2a471"></a>
<a class="el" href="classelftosb_1_1_data_target.html">DataTarget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source.html#a46345e60c1233c1eceb3033da4e2a471">getTarget</a> () const </td></tr>
<tr class="memdesc:a46345e60c1233c1eceb3033da4e2a471 inherit pub_methods_classelftosb_1_1_data_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the associated data target. <br /></td></tr>
<tr class="separator:a46345e60c1233c1eceb3033da4e2a471 inherit pub_methods_classelftosb_1_1_data_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classelftosb_1_1_data_source_1_1_segment"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classelftosb_1_1_data_source_1_1_segment')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classelftosb_1_1_data_source_1_1_segment.html">elftosb::DataSource::Segment</a></td></tr>
<tr class="memitem:a801b56a3290cbe7c4af396f278a191af inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a801b56a3290cbe7c4af396f278a191af"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source_1_1_segment.html#a801b56a3290cbe7c4af396f278a191af">Segment</a> (<a class="el" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source)</td></tr>
<tr class="memdesc:a801b56a3290cbe7c4af396f278a191af inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a801b56a3290cbe7c4af396f278a191af inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20b876cacff9cc0742ee4e6f98cd5d75 inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20b876cacff9cc0742ee4e6f98cd5d75"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source_1_1_segment.html#a20b876cacff9cc0742ee4e6f98cd5d75">~Segment</a> ()</td></tr>
<tr class="memdesc:a20b876cacff9cc0742ee4e6f98cd5d75 inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a20b876cacff9cc0742ee4e6f98cd5d75 inherit pub_methods_classelftosb_1_1_data_source_1_1_segment"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:acd57f2561051ffeb18273ce71d4aa1ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd57f2561051ffeb18273ce71d4aa1ba"></a>
hab_ivt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#acd57f2561051ffeb18273ce71d4aa1ba">m_ivt</a></td></tr>
<tr class="memdesc:acd57f2561051ffeb18273ce71d4aa1ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The IVT structure. <br /></td></tr>
<tr class="separator:acd57f2561051ffeb18273ce71d4aa1ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fbac73d0ceead9c4f4a585fb084ca99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7fbac73d0ceead9c4f4a585fb084ca99"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a7fbac73d0ceead9c4f4a585fb084ca99">m_isSelfSet</a></td></tr>
<tr class="memdesc:a7fbac73d0ceead9c4f4a585fb084ca99"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the IVT self pointer was explicitly set. <br /></td></tr>
<tr class="separator:a7fbac73d0ceead9c4f4a585fb084ca99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classelftosb_1_1_data_source"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classelftosb_1_1_data_source')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classelftosb_1_1_data_source.html">elftosb::DataSource</a></td></tr>
<tr class="memitem:adf49cd610662ffafde71f2a01f2a4c1c inherit pro_attribs_classelftosb_1_1_data_source"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf49cd610662ffafde71f2a01f2a4c1c"></a>
<a class="el" href="classelftosb_1_1_data_target.html">DataTarget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">m_target</a></td></tr>
<tr class="memdesc:adf49cd610662ffafde71f2a01f2a4c1c inherit pro_attribs_classelftosb_1_1_data_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Corresponding target for this source. <br /></td></tr>
<tr class="separator:adf49cd610662ffafde71f2a01f2a4c1c inherit pro_attribs_classelftosb_1_1_data_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classelftosb_1_1_data_source_1_1_segment"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classelftosb_1_1_data_source_1_1_segment')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classelftosb_1_1_data_source_1_1_segment.html">elftosb::DataSource::Segment</a></td></tr>
<tr class="memitem:a7b01b961bd65c1ed42ebec1b347f65f9 inherit pro_attribs_classelftosb_1_1_data_source_1_1_segment"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b01b961bd65c1ed42ebec1b347f65f9"></a>
<a class="el" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_1_1_data_source_1_1_segment.html#a7b01b961bd65c1ed42ebec1b347f65f9">m_source</a></td></tr>
<tr class="memdesc:a7b01b961bd65c1ed42ebec1b347f65f9 inherit pro_attribs_classelftosb_1_1_data_source_1_1_segment"><td class="mdescLeft">&#160;</td><td class="mdescRight">The data source to which this segment belongs. <br /></td></tr>
<tr class="separator:a7b01b961bd65c1ed42ebec1b347f65f9 inherit pro_attribs_classelftosb_1_1_data_source_1_1_segment"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Data source for an IVT structure used by HAB4. </p>
<p>This data source represents an IVT structure used by HAB4. Fields of the IVT can be set by name, making it easy to interface with a parser. And it has some intelligence regarding the IVT's self pointer. Before the data is copied out by the <a class="el" href="classelftosb_1_1_i_v_t_data_source.html#a191933f4dd35766dea310863abc78f6b" title="Copy out some or all of the IVT structure. ">getData()</a> method, the self field will be filled in automatically if it has not already been set and there is an associated data target object. This lets the IVT pick up its own address from the location where it is being loaded. Alternatively, if the self pointer is filled in explicitly, then the data source will have a natural location equal to the self pointer.</p>
<p>This data source acts as its own segment. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a659f63510e7b5e203845820fae996dfe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool IVTDataSource::hasNaturalLocation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the segment has an associated address. </p>
<p>The IVT has a natural location if its self pointer was explicitly specified. </p>

<p>Implements <a class="el" href="classelftosb_1_1_data_source_1_1_segment.html#a99feece1454e5bb9421a0832c2c13ecc">elftosb::DataSource::Segment</a>.</p>

</div>
</div>
<a class="anchor" id="a078b4fbaafc3cea06cf478466857d957"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool IVTDataSource::setFieldByName </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set one of the IVT's fields by providing its name. </p>
<p>Acceptable field names are:</p><ul>
<li>entry</li>
<li>dcd</li>
<li>boot_data</li>
<li>self</li>
<li>csf</li>
</ul>
<p>As long as the <em>name</em> parameter specifies one of these fields, the return value will be true. If <em>name</em> contains any other value, then false will be returned and the IVT left unmodified.</p>
<p>Once the <em>self</em> field has been set to any value, the data source will have a natural location. This works even if the <em>self</em> address is 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The name of the field to set. Field names are case sensitive, just like in the C language. </td></tr>
    <tr><td class="paramname">value</td><td>The value to which the field will be set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>The field was set successfully. </td></tr>
    <tr><td class="paramname">false</td><td>There is no field with the provided name. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_i_v_t_data_source_8h_source.html">IVTDataSource.h</a></li>
<li>IVTDataSource.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>elftosb</b></li><li class="navelem"><a class="el" href="classelftosb_1_1_i_v_t_data_source.html">IVTDataSource</a></li>
    <li class="footer">Generated on Mon Mar 7 2016 16:49:52 for Kinetis Bootloader Host by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
